import { IPSModelObject } from '../../ipsmodel-object';
import { IPSDEField } from '../defield/ipsdefield';
import { IPSDEFValueRule } from '../defield/valuerule/ipsdefvalue-rule';

/**
 *
 * @export
 * @interface IPSDEActionVR
 */
export interface IPSDEActionVR extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 检查次序
   * @type {number}
   */
  orderValue: number;

  /**
   * 属性值规则
   *
   * @type {IPSDEFValueRule}
   */
  getPSDEFValueRule(): IPSDEFValueRule | null;

  /**
   * 属性值规则
   *
   * @type {IPSDEFValueRule}
   */
  get psDEFValueRule(): IPSDEFValueRule | null;

  /**
   * 属性值规则（必须存在）
   *
   * @type {IPSDEFValueRule}
   */
  getPSDEFValueRuleMust(): IPSDEFValueRule;

  /**
   * 属性对象
   *
   * @type {IPSDEField}
   */
  getPSDEField(): IPSDEField | null;

  /**
   * 属性对象
   *
   * @type {IPSDEField}
   */
  get psDEField(): IPSDEField | null;

  /**
   * 属性对象（必须存在）
   *
   * @type {IPSDEField}
   */
  getPSDEFieldMust(): IPSDEField;

  /**
   * 值规则类型
   * @description 值模式 [目标值规则类型] {DEFVALUERULE：实体值规则、 SYSVALUERULE：系统值规则 }
   * @type {( string | 'DEFVALUERULE' | 'SYSVALUERULE')}
   */
  valueRuleType: string | 'DEFVALUERULE' | 'SYSVALUERULE';
}
